package CollectionBaseTest;

import java.util.*;

/**
 * Created by yexuan on 2018/2/24.
 */
public class CollectionDemo1 {
    public static void main(String[] args) {
        Vector v = new Vector();
        v.add("a");
        v.add("b");
        v.add("c");
        v.add("d");
/*
* 枚举是vector特有的取出方法  和迭代是一样的  被迭代取代了
* */
        Enumeration em = v.elements();
        while(em.hasMoreElements()){
            out(em.nextElement());
        }
    }

    private static void out(Object o){
        System.out.println(o);
    }

    private static void method_1(){
        ArrayList a = new ArrayList();
        /*
        集合中存放的是对象的引用（地址）
        */
        a.add("a");
        a.add("b");
        a.add("c");
        a.add("d");

//        Iterator it = a.iterator();
//        while (it.hasNext())
//        out(it.next());

        for(Iterator it = a.iterator(); it.hasNext();){
            out(it.next());
        }

        out(a); //父类AbstractCollection中有toString()方法
//        out(a.size());
    }

    private static void method_2(){
        ArrayList a = new ArrayList();
        /*
        集合中存放的是对象的引用（地址）
        */
        a.add("a");
        a.add("b");
        a.add("c");
        a.add("d");

        //在迭代过程中，执行添加或删除操作
        ListIterator li = a.listIterator();
        while (li.hasNext()){
            Object object = li.next();
            if(object.equals("b"))
//                li.add("e");
                li.set("e");
            out(object);
        }
        out(a);
        //会产生并发错误
//        Iterator it = a.iterator();
//        while (it.hasNext()){
//            Object object = it.next();
//            if(object.equals("b"))
//                a.add("e");
//            out(object);
//        }

    }
}
